Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

з дисципліни

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Інформаційні технології
Група:
КН-30

Частина тексту файла

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра АСУ  Лабораторна робота №1 на тему: « » з дисципліни «Моделювання систем» Мета роботи Вивчення і застосування методу лінійного програмування для рішення задач оптимального керування, у яких цільова функція, модель процесу й обмеження є лінійними функціями. Варіант індивідуального завдання Варіант 1 Цільова функція  Модель процесу  Обмеження  Математична модель задачі Цільова функція мого індивідуального завдання має вигляд: G(x) = 16x1+32x2 . Для знаходження вектору напрямку збільшення цільової функції потрібно взяти часткові похідні від заданої функції по x1 та x2 , отримані значення дорівнюють проекціям вектору на відповідні осі координат:  Для знаходження мінімуму та максимуму потрібно зміщувати лінію паралельні до нашої функції вздовж вектору поки вона не перетнеться з областю допустимих значень. Перше входження цієї ліній в задану область буде її мінімумом, а останнє буде максимумом. Зміщені лінії паралельні до цільої функції називаються лініями рівня. В результаті обчислень отримуємо точки оптимуму нашої функції, та підставивши їх у її рівняння отримаємо мінімальне та максимальне значення функції. В результаті обчислень я отримав точки вершин многокутника області допустимих значень: A(3.2,13.2);B(22.48,8.38);C(0.22,10.22);D(1.68,-1.44);E(16.29,3.43); Мінімум функції G(x) у точці D , де функція приймає значення -19.2. Максимум у точці B , де значення функції дорівнює 627.8095. Блок-схема алгоритму рішення задачі Текст програми #include <conio.h> #include <stdio.h> int main() { clrscr(); double buf,Fmin,Fmax,detA,detA1,detA2; int index=0,vOblasti,maxI,minI,count=5,i,j,k; maxI=minI=0; int G[2]={16,32}; int A[20][4]= {{1,4,56,1},{1,-1,-10,0},{8,1,12,0},{-1,3,-6,0},{-4,5,-48,0}}; double Tochku[30][2]; for ( i=0; i < count; i++) for (j= i+1; j<count; j++) { detA=A[i][0]*A[j][1]-A[i][1]*A[j][0]; if(detA==0)continue; detA1=A[i][2]*A[j][1]-A[i][1]*A[j][2]; detA2=A[i][0]*A[j][2]-A[i][2]*A[j][0]; Tochku[index][0]=detA1/detA; Tochku[index][1]=detA2/detA; vOblasti=1; for (k = 0;( k < count)&&vOblasti; k++) { double buf=Tochku[index][0]*A[k][0]+Tochku[index][1]*A[k][1]; if(A[k][3]==0)//Bilshe Rivne >= vOblasti=buf>=A[k][2]; if(A[k][3]==1)//Menshe Rivno <= vOblasti=buf<=A[k][2]; } if (vOblasti)index++; } printf("\tG(x)=16x1+32x2\n"); printf("Results:\n"); for (i = 0; i < index; i++) { printf("\t%c(%.2lf,%.2lf)\n",65+i,Tochku[i][0],Tochku[i][1]); } Fmin=G[0]*Tochku[0][0]+G[1]*Tochku[0][1]; Fmax=Fmin; for (i = 1; i <index; i++) { buf=G[0]*Tochku[i][0]+G[1]*Tochku[i][1]; if(Fmin>buf){Fmin=buf;minI=i;} if(Fmax<buf){Fmax=buf;maxI=i;} } printf("\tMin %c(%.2lf,%.2lf) de G(x)=%.4lf\n",'A'+minI, Tochku[minI][0],Tochku[minI][1],Fmin); printf("\tMax %c(%.2lf,%.2lf) de G(x)=%.4lf\n",'A'+maxI, Tochku[maxI][0],Tochku[maxI][1],Fmax); getch(); return 0; } // --------------------------------------------------------------------------- Графічне рішення задачі  1)x1 +4x2<=56; 2) x1-x2>=-10; 3) 8x1+x2>=12; 4)-x1+3x2>=-6; 5)-4x1+5x2>=-48; G(x)=16x1+32x2; Cкріншот виконання програми:  Висновки На цій лабораторній роботі я вивчав і застосовував метод лінійного програмування для рішення задач оптимального керування, у яких цільова функція, модель процесу й обмеження є лінійними функціями.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини